home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / g_man / cat3 / OpenGL-ftn / fglsamplemasksgis.z / fglsamplemasksgis
Encoding:
Text File  |  2002-10-03  |  8.7 KB  |  133 lines

  1.  
  2.  
  3.  
  4. ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))          OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee          ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS - define mask to modify multisampled pixel fragments
  10.  
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  13.      SUBROUTINE ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS( REAL*4 _v_a_l_u_e,
  14.                                    LOGICAL*1 _i_n_v_e_r_t )
  15.  
  16.  
  17. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  18.      _v_a_l_u_e   Specifies coverage of the modification mask.  Clamped to the
  19.              range [0, 1]; zero implies no coverage, and one implies full
  20.              coverage.
  21.  
  22.      _i_n_v_e_r_t  GGGGLLLL____FFFFAAAALLLLSSSSEEEE to use the modification mask implied by _v_a_l_u_e; GGGGLLLL____TTTTRRRRUUUUEEEE
  23.              to use the bitwise inverse of that mask.
  24.  
  25.  
  26. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  27.      ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS defines a mask to modify the coverage of multisampled
  28.      pixel fragments.  This capability is used for antialiased screen-door
  29.      transparency and smooth transitions between two renderings of an object
  30.      (often for level-of-detail management in simulation systems).
  31.  
  32.      When multisampling is enabled (see ffffggggllllEEEEnnnnaaaabbbblllleeee with argument
  33.      GGGGLLLL____MMMMUUUULLLLTTTTIIIISSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIIISSSS) a ``fragment mask'' is computed for each fragment
  34.      generated by a primitive.  This mask reflects the amount of the pixel
  35.      covered by the fragment, and determines the frame buffer samples that may
  36.      be affected by the fragment.
  37.  
  38.      If conversion of alpha values to masks is enabled (ffffggggllllEEEEnnnnaaaabbbblllleeee with
  39.      argument GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____MMMMAAAASSSSKKKK____SSSSGGGGIIIISSSS), the fragment alpha value is used
  40.      to generate a temporary modification mask which is then ANDed with the
  41.      fragment mask.  One way to interpret this is as a form of dithering: a
  42.      multivalued alpha (coverage or opacity) for the whole fragment is
  43.      converted to simple binary values of coverage at many locations (the
  44.      samples).
  45.  
  46.      After conversion of alpha values to masks, if replacement of alpha values
  47.      is enabled (ffffggggllllEEEEnnnnaaaabbbblllleeee with argument GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____OOOONNNNEEEE____SSSSGGGGIIIISSSS), the
  48.      fragment's alpha is set to the maximum allowable value.
  49.  
  50.      Finally, if fragment mask modification is enabled (ffffggggllllEEEEnnnnaaaabbbblllleeee with
  51.      argument GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____SSSSGGGGIIIISSSS), ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS defines an additional
  52.      modification mask.  _v_a_l_u_e is used to generate a modification mask in much
  53.      the same way alpha was used above.  If _i_n_v_e_r_t is GGGGLLLL____TTTTRRRRUUUUEEEE, then the
  54.      modification mask specified by _v_a_l_u_e will be inverted.  The final
  55.      modification mask will then be ANDed with the fragment mask resulting
  56.      from the previous steps.  This can be viewed as an ``override'' control
  57.      that selectively fades the effects of multisampled fragments.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))          OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee          ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      Note that ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS(_v_a_l_u_e, GGGGLLLL____TTTTRRRRUUUUEEEE) is not necessarily equivalent
  75.      to ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS(1.0-_v_a_l_u_e, GGGGLLLL____FFFFAAAALLLLSSSSEEEE); due to round-off and other
  76.      issues, complementing the coverage will not necessarily yield an inverted
  77.      modification mask.
  78.  
  79.  
  80. NNNNOOOOTTTTEEEESSSS
  81.      ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS is part of the SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee extension, not part of
  82.      the core GL command set.  If GGGGLLLL____SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee is included in the
  83.      string returned by ffffggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg, when called with argument GGGGLLLL____EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS,
  84.      extension SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee is supported by the connection.
  85.  
  86.  
  87. EEEERRRRRRRROOOORRRRSSSS
  88.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ffffggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS is executed
  89.      between the execution of ffffggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of
  90.      ffffggggllllEEEEnnnndddd.
  91.  
  92. AAAASSSSSSSSOOOOCCCCIIIIAAAATTTTEEEEDDDD GGGGEEEETTTTSSSS
  93.      ffffggggllllGGGGeeeetttt with argument GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____VVVVAAAALLLLUUUUEEEE____SSSSGGGGIIII, or
  94.      GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____IIIINNNNVVVVEEEERRRRTTTT____SSSSGGGGIIII.
  95.      ffffggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____MMMMUUUULLLLTTTTIIIISSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIII, GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____MMMMAAAASSSSKKKK,
  96.      GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____OOOONNNNEEEE____SSSSGGGGIIII, GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____SSSSGGGGIIII.
  97.  
  98.  
  99. MMMMAAAACCCCHHHHIIIINNNNEEEE DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNCCCCIIIIEEEESSSS
  100.      Multisampling is supported only on RealityEngine, RealityEngine2, and VTX
  101.      and InfiniteReality systems.  Currently it can be used with windows of
  102.      multisample-capable Visual types, but not with pixmaps.
  103.  
  104.  
  105. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  106.      ffffggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.